{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "df888418-d0f5-4cdd-9a46-265c28697127",
   "metadata": {},
   "outputs": [],
   "source": [
    "import polars as pl\n",
    "from perspective.widget import PerspectiveWidget"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "4524050d-373f-44b4-841d-49748f528473",
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "d1=pl.read_parquet(\"new_share.parquet\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "41a7cf54-b727-4269-bed7-9f723645dc5c",
   "metadata": {},
   "outputs": [],
   "source": [
    "d2=pl.read_parquet(\"stock_basic.parquet\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "ee6cfd4c-3dcb-4431-b25b-a6c906591ebc",
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><style>\n",
       ".dataframe > thead > tr,\n",
       ".dataframe > tbody > tr {\n",
       "  text-align: right;\n",
       "  white-space: pre-wrap;\n",
       "}\n",
       "</style>\n",
       "<small>shape: (2_000, 12)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>ts_code</th><th>sub_code</th><th>name</th><th>ipo_date</th><th>issue_date</th><th>amount</th><th>market_amount</th><th>price</th><th>pe</th><th>limit_amount</th><th>funds</th><th>ballot</th></tr><tr><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td></tr></thead><tbody><tr><td>&quot;603014.SH&quot;</td><td>&quot;732014&quot;</td><td>&quot;威高血净&quot;</td><td>&quot;20250508&quot;</td><td>null</td><td>4114.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>1.1</td><td>0.0</td><td>0.0</td></tr><tr><td>&quot;301595.SZ&quot;</td><td>&quot;301595&quot;</td><td>&quot;太力科技&quot;</td><td>&quot;20250508&quot;</td><td>null</td><td>2707.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.65</td><td>0.0</td><td>0.0</td></tr><tr><td>&quot;688755.SH&quot;</td><td>&quot;787755&quot;</td><td>&quot;汉邦科技&quot;</td><td>&quot;20250507&quot;</td><td>null</td><td>2200.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.5</td><td>0.0</td><td>0.0</td></tr><tr><td>&quot;301636.SZ&quot;</td><td>&quot;301636&quot;</td><td>&quot;泽润新能&quot;</td><td>&quot;20250428&quot;</td><td>null</td><td>1597.0</td><td>455.0</td><td>33.06</td><td>17.57</td><td>0.45</td><td>5.279</td><td>0.0</td></tr><tr><td>&quot;920068.BJ&quot;</td><td>&quot;920068&quot;</td><td>&quot;天工股份&quot;</td><td>&quot;20250428&quot;</td><td>null</td><td>6000.0</td><td>4200.0</td><td>3.94</td><td>14.98</td><td>255.0</td><td>2.364</td><td>0.0</td></tr><tr><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td></tr><tr><td>&quot;300777.SZ&quot;</td><td>&quot;300777&quot;</td><td>&quot;中简科技&quot;</td><td>&quot;20190506&quot;</td><td>&quot;20190516&quot;</td><td>4001.0</td><td>3601.0</td><td>6.06</td><td>22.98</td><td>1.1</td><td>2.425</td><td>0.04</td></tr><tr><td>&quot;603267.SH&quot;</td><td>&quot;732267&quot;</td><td>&quot;鸿远电子&quot;</td><td>&quot;20190430&quot;</td><td>&quot;20190515&quot;</td><td>4134.0</td><td>3721.0</td><td>20.24</td><td>16.5</td><td>1.6</td><td>8.367</td><td>0.03</td></tr><tr><td>&quot;600989.SH&quot;</td><td>&quot;730989&quot;</td><td>&quot;宝丰能源&quot;</td><td>&quot;20190430&quot;</td><td>&quot;20190516&quot;</td><td>73336.0</td><td>66002.0</td><td>11.12</td><td>22.07</td><td>22.0</td><td>81.55</td><td>0.25</td></tr><tr><td>&quot;300778.SZ&quot;</td><td>&quot;300778&quot;</td><td>&quot;新城市&quot;</td><td>&quot;20190425&quot;</td><td>&quot;20190510&quot;</td><td>2000.0</td><td>2000.0</td><td>27.33</td><td>22.99</td><td>2.0</td><td>5.466</td><td>0.02</td></tr><tr><td>&quot;002953.SZ&quot;</td><td>&quot;002953&quot;</td><td>&quot;日丰股份&quot;</td><td>&quot;20190424&quot;</td><td>&quot;20190509&quot;</td><td>4302.0</td><td>3872.0</td><td>10.52</td><td>16.34</td><td>1.7</td><td>4.526</td><td>0.03</td></tr></tbody></table></div>"
      ],
      "text/plain": [
       "shape: (2_000, 12)\n",
       "┌───────────┬──────────┬──────────┬──────────┬───┬───────┬──────────────┬───────┬────────┐\n",
       "│ ts_code   ┆ sub_code ┆ name     ┆ ipo_date ┆ … ┆ pe    ┆ limit_amount ┆ funds ┆ ballot │\n",
       "│ ---       ┆ ---      ┆ ---      ┆ ---      ┆   ┆ ---   ┆ ---          ┆ ---   ┆ ---    │\n",
       "│ str       ┆ str      ┆ str      ┆ str      ┆   ┆ f64   ┆ f64          ┆ f64   ┆ f64    │\n",
       "╞═══════════╪══════════╪══════════╪══════════╪═══╪═══════╪══════════════╪═══════╪════════╡\n",
       "│ 603014.SH ┆ 732014   ┆ 威高血净 ┆ 20250508 ┆ … ┆ 0.0   ┆ 1.1          ┆ 0.0   ┆ 0.0    │\n",
       "│ 301595.SZ ┆ 301595   ┆ 太力科技 ┆ 20250508 ┆ … ┆ 0.0   ┆ 0.65         ┆ 0.0   ┆ 0.0    │\n",
       "│ 688755.SH ┆ 787755   ┆ 汉邦科技 ┆ 20250507 ┆ … ┆ 0.0   ┆ 0.5          ┆ 0.0   ┆ 0.0    │\n",
       "│ 301636.SZ ┆ 301636   ┆ 泽润新能 ┆ 20250428 ┆ … ┆ 17.57 ┆ 0.45         ┆ 5.279 ┆ 0.0    │\n",
       "│ 920068.BJ ┆ 920068   ┆ 天工股份 ┆ 20250428 ┆ … ┆ 14.98 ┆ 255.0        ┆ 2.364 ┆ 0.0    │\n",
       "│ …         ┆ …        ┆ …        ┆ …        ┆ … ┆ …     ┆ …            ┆ …     ┆ …      │\n",
       "│ 300777.SZ ┆ 300777   ┆ 中简科技 ┆ 20190506 ┆ … ┆ 22.98 ┆ 1.1          ┆ 2.425 ┆ 0.04   │\n",
       "│ 603267.SH ┆ 732267   ┆ 鸿远电子 ┆ 20190430 ┆ … ┆ 16.5  ┆ 1.6          ┆ 8.367 ┆ 0.03   │\n",
       "│ 600989.SH ┆ 730989   ┆ 宝丰能源 ┆ 20190430 ┆ … ┆ 22.07 ┆ 22.0         ┆ 81.55 ┆ 0.25   │\n",
       "│ 300778.SZ ┆ 300778   ┆ 新城市   ┆ 20190425 ┆ … ┆ 22.99 ┆ 2.0          ┆ 5.466 ┆ 0.02   │\n",
       "│ 002953.SZ ┆ 002953   ┆ 日丰股份 ┆ 20190424 ┆ … ┆ 16.34 ┆ 1.7          ┆ 4.526 ┆ 0.03   │\n",
       "└───────────┴──────────┴──────────┴──────────┴───┴───────┴──────────────┴───────┴────────┘"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "d1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "bab9359d-2323-4f84-8e66-01ec779f955b",
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><style>\n",
       ".dataframe > thead > tr,\n",
       ".dataframe > tbody > tr {\n",
       "  text-align: right;\n",
       "  white-space: pre-wrap;\n",
       "}\n",
       "</style>\n",
       "<small>shape: (2_000, 12)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>ts_code</th><th>sub_code</th><th>name</th><th>ipo_date</th><th>issue_date</th><th>amount</th><th>market_amount</th><th>price</th><th>pe</th><th>limit_amount</th><th>funds</th><th>ballot</th></tr><tr><td>str</td><td>str</td><td>str</td><td>date</td><td>date</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td></tr></thead><tbody><tr><td>&quot;603014.SH&quot;</td><td>&quot;732014&quot;</td><td>&quot;威高血净&quot;</td><td>2025-05-08</td><td>2025-05-08</td><td>4114.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>1.1</td><td>0.0</td><td>0.0</td></tr><tr><td>&quot;301595.SZ&quot;</td><td>&quot;301595&quot;</td><td>&quot;太力科技&quot;</td><td>2025-05-08</td><td>2025-05-08</td><td>2707.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.65</td><td>0.0</td><td>0.0</td></tr><tr><td>&quot;688755.SH&quot;</td><td>&quot;787755&quot;</td><td>&quot;汉邦科技&quot;</td><td>2025-05-07</td><td>2025-05-07</td><td>2200.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.5</td><td>0.0</td><td>0.0</td></tr><tr><td>&quot;301636.SZ&quot;</td><td>&quot;301636&quot;</td><td>&quot;泽润新能&quot;</td><td>2025-04-28</td><td>2025-04-28</td><td>1597.0</td><td>455.0</td><td>33.06</td><td>17.57</td><td>0.45</td><td>5.279</td><td>0.0</td></tr><tr><td>&quot;920068.BJ&quot;</td><td>&quot;920068&quot;</td><td>&quot;天工股份&quot;</td><td>2025-04-28</td><td>2025-04-28</td><td>6000.0</td><td>4200.0</td><td>3.94</td><td>14.98</td><td>255.0</td><td>2.364</td><td>0.0</td></tr><tr><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td></tr><tr><td>&quot;300777.SZ&quot;</td><td>&quot;300777&quot;</td><td>&quot;中简科技&quot;</td><td>2019-05-06</td><td>2019-05-06</td><td>4001.0</td><td>3601.0</td><td>6.06</td><td>22.98</td><td>1.1</td><td>2.425</td><td>0.04</td></tr><tr><td>&quot;603267.SH&quot;</td><td>&quot;732267&quot;</td><td>&quot;鸿远电子&quot;</td><td>2019-04-30</td><td>2019-04-30</td><td>4134.0</td><td>3721.0</td><td>20.24</td><td>16.5</td><td>1.6</td><td>8.367</td><td>0.03</td></tr><tr><td>&quot;600989.SH&quot;</td><td>&quot;730989&quot;</td><td>&quot;宝丰能源&quot;</td><td>2019-04-30</td><td>2019-04-30</td><td>73336.0</td><td>66002.0</td><td>11.12</td><td>22.07</td><td>22.0</td><td>81.55</td><td>0.25</td></tr><tr><td>&quot;300778.SZ&quot;</td><td>&quot;300778&quot;</td><td>&quot;新城市&quot;</td><td>2019-04-25</td><td>2019-04-25</td><td>2000.0</td><td>2000.0</td><td>27.33</td><td>22.99</td><td>2.0</td><td>5.466</td><td>0.02</td></tr><tr><td>&quot;002953.SZ&quot;</td><td>&quot;002953&quot;</td><td>&quot;日丰股份&quot;</td><td>2019-04-24</td><td>2019-04-24</td><td>4302.0</td><td>3872.0</td><td>10.52</td><td>16.34</td><td>1.7</td><td>4.526</td><td>0.03</td></tr></tbody></table></div>"
      ],
      "text/plain": [
       "shape: (2_000, 12)\n",
       "┌───────────┬──────────┬──────────┬────────────┬───┬───────┬──────────────┬───────┬────────┐\n",
       "│ ts_code   ┆ sub_code ┆ name     ┆ ipo_date   ┆ … ┆ pe    ┆ limit_amount ┆ funds ┆ ballot │\n",
       "│ ---       ┆ ---      ┆ ---      ┆ ---        ┆   ┆ ---   ┆ ---          ┆ ---   ┆ ---    │\n",
       "│ str       ┆ str      ┆ str      ┆ date       ┆   ┆ f64   ┆ f64          ┆ f64   ┆ f64    │\n",
       "╞═══════════╪══════════╪══════════╪════════════╪═══╪═══════╪══════════════╪═══════╪════════╡\n",
       "│ 603014.SH ┆ 732014   ┆ 威高血净 ┆ 2025-05-08 ┆ … ┆ 0.0   ┆ 1.1          ┆ 0.0   ┆ 0.0    │\n",
       "│ 301595.SZ ┆ 301595   ┆ 太力科技 ┆ 2025-05-08 ┆ … ┆ 0.0   ┆ 0.65         ┆ 0.0   ┆ 0.0    │\n",
       "│ 688755.SH ┆ 787755   ┆ 汉邦科技 ┆ 2025-05-07 ┆ … ┆ 0.0   ┆ 0.5          ┆ 0.0   ┆ 0.0    │\n",
       "│ 301636.SZ ┆ 301636   ┆ 泽润新能 ┆ 2025-04-28 ┆ … ┆ 17.57 ┆ 0.45         ┆ 5.279 ┆ 0.0    │\n",
       "│ 920068.BJ ┆ 920068   ┆ 天工股份 ┆ 2025-04-28 ┆ … ┆ 14.98 ┆ 255.0        ┆ 2.364 ┆ 0.0    │\n",
       "│ …         ┆ …        ┆ …        ┆ …          ┆ … ┆ …     ┆ …            ┆ …     ┆ …      │\n",
       "│ 300777.SZ ┆ 300777   ┆ 中简科技 ┆ 2019-05-06 ┆ … ┆ 22.98 ┆ 1.1          ┆ 2.425 ┆ 0.04   │\n",
       "│ 603267.SH ┆ 732267   ┆ 鸿远电子 ┆ 2019-04-30 ┆ … ┆ 16.5  ┆ 1.6          ┆ 8.367 ┆ 0.03   │\n",
       "│ 600989.SH ┆ 730989   ┆ 宝丰能源 ┆ 2019-04-30 ┆ … ┆ 22.07 ┆ 22.0         ┆ 81.55 ┆ 0.25   │\n",
       "│ 300778.SZ ┆ 300778   ┆ 新城市   ┆ 2019-04-25 ┆ … ┆ 22.99 ┆ 2.0          ┆ 5.466 ┆ 0.02   │\n",
       "│ 002953.SZ ┆ 002953   ┆ 日丰股份 ┆ 2019-04-24 ┆ … ┆ 16.34 ┆ 1.7          ┆ 4.526 ┆ 0.03   │\n",
       "└───────────┴──────────┴──────────┴────────────┴───┴───────┴──────────────┴───────┴────────┘"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "d1.with_columns(\n",
    "    ipo_date=pl.col.ipo_date.str.to_date(\"%Y%m%d\"),\n",
    "    issue_date=pl.col.ipo_date.str.to_date(\"%Y%m%d\"),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "7ef3603a-4f88-446f-9734-77f5a8fc8648",
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true,
     "source_hidden": true
    },
    "scrolled": true
   },
   "outputs": [
    {
     "ename": "ColumnNotFoundError",
     "evalue": "ipo_date\n\nResolved plan until failure:\n\n\t---> FAILED HERE RESOLVING 'sink' <---\nDF [\"ts_code\", \"symbol\", \"name\", \"area\", ...]; PROJECT */17 COLUMNS",
     "output_type": "error",
     "traceback": [
      "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
      "\u001b[31mColumnNotFoundError\u001b[39m                       Traceback (most recent call last)",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[13]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43md2\u001b[49m\u001b[43m.\u001b[49m\u001b[43mwith_columns\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m      2\u001b[39m \u001b[43m    \u001b[49m\u001b[43mlist_date\u001b[49m\u001b[43m=\u001b[49m\u001b[43mpl\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcol\u001b[49m\u001b[43m.\u001b[49m\u001b[43mipo_date\u001b[49m\u001b[43m.\u001b[49m\u001b[43mstr\u001b[49m\u001b[43m.\u001b[49m\u001b[43mto_date\u001b[49m\u001b[43m(\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43m%\u001b[39;49m\u001b[33;43mY\u001b[39;49m\u001b[33;43m%\u001b[39;49m\u001b[33;43mm\u001b[39;49m\u001b[38;5;132;43;01m%d\u001b[39;49;00m\u001b[33;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[32m      3\u001b[39m \u001b[43m)\u001b[49m\n",
      "\u001b[36mFile \u001b[39m\u001b[32mD:\\anana\\damangshe\\envs\\week07\\Lib\\site-packages\\polars\\dataframe\\frame.py:9806\u001b[39m, in \u001b[36mDataFrame.with_columns\u001b[39m\u001b[34m(self, *exprs, **named_exprs)\u001b[39m\n\u001b[32m   9660\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mwith_columns\u001b[39m(\n\u001b[32m   9661\u001b[39m     \u001b[38;5;28mself\u001b[39m,\n\u001b[32m   9662\u001b[39m     *exprs: IntoExpr | Iterable[IntoExpr],\n\u001b[32m   9663\u001b[39m     **named_exprs: IntoExpr,\n\u001b[32m   9664\u001b[39m ) -> DataFrame:\n\u001b[32m   9665\u001b[39m \u001b[38;5;250m    \u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m   9666\u001b[39m \u001b[33;03m    Add columns to this DataFrame.\u001b[39;00m\n\u001b[32m   9667\u001b[39m \n\u001b[32m   (...)\u001b[39m\u001b[32m   9804\u001b[39m \u001b[33;03m    └─────┴──────┴─────────────┘\u001b[39;00m\n\u001b[32m   9805\u001b[39m \u001b[33;03m    \"\"\"\u001b[39;00m\n\u001b[32m-> \u001b[39m\u001b[32m9806\u001b[39m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mlazy\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m.\u001b[49m\u001b[43mwith_columns\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43mexprs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mnamed_exprs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcollect\u001b[49m\u001b[43m(\u001b[49m\u001b[43m_eager\u001b[49m\u001b[43m=\u001b[49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\n",
      "\u001b[36mFile \u001b[39m\u001b[32mD:\\anana\\damangshe\\envs\\week07\\Lib\\site-packages\\polars\\_utils\\deprecation.py:93\u001b[39m, in \u001b[36mdeprecate_streaming_parameter.<locals>.decorate.<locals>.wrapper\u001b[39m\u001b[34m(*args, **kwargs)\u001b[39m\n\u001b[32m     89\u001b[39m         kwargs[\u001b[33m\"\u001b[39m\u001b[33mengine\u001b[39m\u001b[33m\"\u001b[39m] = \u001b[33m\"\u001b[39m\u001b[33min-memory\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m     91\u001b[39m     \u001b[38;5;28;01mdel\u001b[39;00m kwargs[\u001b[33m\"\u001b[39m\u001b[33mstreaming\u001b[39m\u001b[33m\"\u001b[39m]\n\u001b[32m---> \u001b[39m\u001b[32m93\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunction\u001b[49m\u001b[43m(\u001b[49m\u001b[43m*\u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m*\u001b[49m\u001b[43m*\u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
      "\u001b[36mFile \u001b[39m\u001b[32mD:\\anana\\damangshe\\envs\\week07\\Lib\\site-packages\\polars\\lazyframe\\frame.py:2206\u001b[39m, in \u001b[36mLazyFrame.collect\u001b[39m\u001b[34m(self, type_coercion, _type_check, predicate_pushdown, projection_pushdown, simplify_expression, slice_pushdown, comm_subplan_elim, comm_subexpr_elim, cluster_with_columns, collapse_joins, no_optimization, engine, background, _check_order, _eager, **_kwargs)\u001b[39m\n\u001b[32m   2204\u001b[39m \u001b[38;5;66;03m# Only for testing purposes\u001b[39;00m\n\u001b[32m   2205\u001b[39m callback = _kwargs.get(\u001b[33m\"\u001b[39m\u001b[33mpost_opt_callback\u001b[39m\u001b[33m\"\u001b[39m, callback)\n\u001b[32m-> \u001b[39m\u001b[32m2206\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m wrap_df(\u001b[43mldf\u001b[49m\u001b[43m.\u001b[49m\u001b[43mcollect\u001b[49m\u001b[43m(\u001b[49m\u001b[43mengine\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcallback\u001b[49m\u001b[43m)\u001b[49m)\n",
      "\u001b[31mColumnNotFoundError\u001b[39m: ipo_date\n\nResolved plan until failure:\n\n\t---> FAILED HERE RESOLVING 'sink' <---\nDF [\"ts_code\", \"symbol\", \"name\", \"area\", ...]; PROJECT */17 COLUMNS"
     ]
    }
   ],
   "source": [
    "d2.with_columns(\n",
    "    list_date=pl.col.ipo_date.str.to_date(\"%Y%m%d\"),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "170a4dbb-265c-47a5-af5d-bacf3f916509",
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><style>\n",
       ".dataframe > thead > tr,\n",
       ".dataframe > tbody > tr {\n",
       "  text-align: right;\n",
       "  white-space: pre-wrap;\n",
       "}\n",
       "</style>\n",
       "<small>shape: (5_415, 17)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>ts_code</th><th>symbol</th><th>name</th><th>area</th><th>industry</th><th>fullname</th><th>enname</th><th>cnspell</th><th>market</th><th>exchange</th><th>curr_type</th><th>list_status</th><th>list_date</th><th>delist_date</th><th>is_hs</th><th>act_name</th><th>act_ent_type</th></tr><tr><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>null</td><td>str</td><td>str</td><td>str</td></tr></thead><tbody><tr><td>&quot;000001.SZ&quot;</td><td>&quot;000001&quot;</td><td>&quot;平安银行&quot;</td><td>&quot;深圳&quot;</td><td>&quot;银行&quot;</td><td>&quot;平安银行股份有限公司&quot;</td><td>&quot;Ping An Bank Co., Ltd.&quot;</td><td>&quot;payh&quot;</td><td>&quot;主板&quot;</td><td>&quot;SZSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;19910403&quot;</td><td>null</td><td>&quot;S&quot;</td><td>&quot;无实际控制人&quot;</td><td>&quot;无&quot;</td></tr><tr><td>&quot;000002.SZ&quot;</td><td>&quot;000002&quot;</td><td>&quot;万科A&quot;</td><td>&quot;深圳&quot;</td><td>&quot;全国地产&quot;</td><td>&quot;万科企业股份有限公司&quot;</td><td>&quot;China Vanke Co.,Ltd.&quot;</td><td>&quot;wka&quot;</td><td>&quot;主板&quot;</td><td>&quot;SZSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;19910129&quot;</td><td>null</td><td>&quot;S&quot;</td><td>&quot;深圳市人民政府国有资产监督管理委员会&quot;</td><td>&quot;地方国企&quot;</td></tr><tr><td>&quot;000004.SZ&quot;</td><td>&quot;000004&quot;</td><td>&quot;国华网安&quot;</td><td>&quot;深圳&quot;</td><td>&quot;软件服务&quot;</td><td>&quot;深圳国华网安科技股份有限公司&quot;</td><td>&quot;Shenzhen Guohua Network Securi…</td><td>&quot;ghwa&quot;</td><td>&quot;主板&quot;</td><td>&quot;SZSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;19910114&quot;</td><td>null</td><td>&quot;N&quot;</td><td>&quot;李映彤&quot;</td><td>&quot;民营企业&quot;</td></tr><tr><td>&quot;000006.SZ&quot;</td><td>&quot;000006&quot;</td><td>&quot;深振业A&quot;</td><td>&quot;深圳&quot;</td><td>&quot;区域地产&quot;</td><td>&quot;深圳市振业(集团)股份有限公司&quot;</td><td>&quot;Shenzhen Zhenye(Group) Co., Lt…</td><td>&quot;szya&quot;</td><td>&quot;主板&quot;</td><td>&quot;SZSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;19920427&quot;</td><td>null</td><td>&quot;S&quot;</td><td>&quot;深圳市人民政府国有资产监督管理委员会&quot;</td><td>&quot;地方国企&quot;</td></tr><tr><td>&quot;000007.SZ&quot;</td><td>&quot;000007&quot;</td><td>&quot;全新好&quot;</td><td>&quot;深圳&quot;</td><td>&quot;其他商业&quot;</td><td>&quot;深圳市全新好股份有限公司&quot;</td><td>&quot;Shenzhen Quanxinhao Co,.Ltd.&quot;</td><td>&quot;qxh&quot;</td><td>&quot;主板&quot;</td><td>&quot;SZSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;19920413&quot;</td><td>null</td><td>&quot;N&quot;</td><td>&quot;王玩虹&quot;</td><td>&quot;民营企业&quot;</td></tr><tr><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td></tr><tr><td>&quot;920111.BJ&quot;</td><td>&quot;920111&quot;</td><td>&quot;聚星科技&quot;</td><td>null</td><td>null</td><td>&quot;温州聚星科技股份有限公司&quot;</td><td>&quot;Wenzhou Juxing Science And Tec…</td><td>&quot;jxkj&quot;</td><td>&quot;北交所&quot;</td><td>&quot;BSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;20241111&quot;</td><td>null</td><td>&quot;N&quot;</td><td>null</td><td>null</td></tr><tr><td>&quot;920116.BJ&quot;</td><td>&quot;920116&quot;</td><td>&quot;星图测控&quot;</td><td>null</td><td>null</td><td>&quot;中科星图测控技术股份有限公司&quot;</td><td>&quot;Geovis Insighter Technology Co…</td><td>&quot;xtck&quot;</td><td>&quot;北交所&quot;</td><td>&quot;BSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;20250102&quot;</td><td>null</td><td>&quot;N&quot;</td><td>null</td><td>null</td></tr><tr><td>&quot;920118.BJ&quot;</td><td>&quot;920118&quot;</td><td>&quot;太湖远大&quot;</td><td>null</td><td>null</td><td>&quot;浙江太湖远大新材料股份有限公司&quot;</td><td>&quot;Zhejiang Taihu Yuanda New Mate…</td><td>&quot;thyd&quot;</td><td>&quot;北交所&quot;</td><td>&quot;BSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;20240822&quot;</td><td>null</td><td>&quot;N&quot;</td><td>null</td><td>null</td></tr><tr><td>&quot;920128.BJ&quot;</td><td>&quot;920128&quot;</td><td>&quot;胜业电气&quot;</td><td>null</td><td>null</td><td>&quot;胜业电气股份有限公司&quot;</td><td>&quot;Shengye Electric Co., Ltd.&quot;</td><td>&quot;sydq&quot;</td><td>&quot;北交所&quot;</td><td>&quot;BSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;20241129&quot;</td><td>null</td><td>&quot;N&quot;</td><td>null</td><td>null</td></tr><tr><td>&quot;689009.SH&quot;</td><td>&quot;689009&quot;</td><td>&quot;九号公司-WD&quot;</td><td>&quot;北京&quot;</td><td>&quot;摩托车&quot;</td><td>&quot;九号有限公司&quot;</td><td>&quot;Ninebot Limited&quot;</td><td>&quot;jhgs&quot;</td><td>&quot;科创板&quot;</td><td>&quot;SSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;20201029&quot;</td><td>null</td><td>null</td><td>null</td><td>null</td></tr></tbody></table></div>"
      ],
      "text/plain": [
       "shape: (5_415, 17)\n",
       "┌───────────┬────────┬─────────────┬──────┬───┬────────────┬───────┬────────────┬────────────┐\n",
       "│ ts_code   ┆ symbol ┆ name        ┆ area ┆ … ┆ delist_dat ┆ is_hs ┆ act_name   ┆ act_ent_ty │\n",
       "│ ---       ┆ ---    ┆ ---         ┆ ---  ┆   ┆ e          ┆ ---   ┆ ---        ┆ pe         │\n",
       "│ str       ┆ str    ┆ str         ┆ str  ┆   ┆ ---        ┆ str   ┆ str        ┆ ---        │\n",
       "│           ┆        ┆             ┆      ┆   ┆ null       ┆       ┆            ┆ str        │\n",
       "╞═══════════╪════════╪═════════════╪══════╪═══╪════════════╪═══════╪════════════╪════════════╡\n",
       "│ 000001.SZ ┆ 000001 ┆ 平安银行    ┆ 深圳 ┆ … ┆ null       ┆ S     ┆ 无实际控制 ┆ 无         │\n",
       "│           ┆        ┆             ┆      ┆   ┆            ┆       ┆ 人         ┆            │\n",
       "│ 000002.SZ ┆ 000002 ┆ 万科A       ┆ 深圳 ┆ … ┆ null       ┆ S     ┆ 深圳市人民 ┆ 地方国企   │\n",
       "│           ┆        ┆             ┆      ┆   ┆            ┆       ┆ 政府国有资 ┆            │\n",
       "│           ┆        ┆             ┆      ┆   ┆            ┆       ┆ 产监督管理 ┆            │\n",
       "│           ┆        ┆             ┆      ┆   ┆            ┆       ┆ 委员会     ┆            │\n",
       "│ 000004.SZ ┆ 000004 ┆ 国华网安    ┆ 深圳 ┆ … ┆ null       ┆ N     ┆ 李映彤     ┆ 民营企业   │\n",
       "│ 000006.SZ ┆ 000006 ┆ 深振业A     ┆ 深圳 ┆ … ┆ null       ┆ S     ┆ 深圳市人民 ┆ 地方国企   │\n",
       "│           ┆        ┆             ┆      ┆   ┆            ┆       ┆ 政府国有资 ┆            │\n",
       "│           ┆        ┆             ┆      ┆   ┆            ┆       ┆ 产监督管理 ┆            │\n",
       "│           ┆        ┆             ┆      ┆   ┆            ┆       ┆ 委员会     ┆            │\n",
       "│ 000007.SZ ┆ 000007 ┆ 全新好      ┆ 深圳 ┆ … ┆ null       ┆ N     ┆ 王玩虹     ┆ 民营企业   │\n",
       "│ …         ┆ …      ┆ …           ┆ …    ┆ … ┆ …          ┆ …     ┆ …          ┆ …          │\n",
       "│ 920111.BJ ┆ 920111 ┆ 聚星科技    ┆ null ┆ … ┆ null       ┆ N     ┆ null       ┆ null       │\n",
       "│ 920116.BJ ┆ 920116 ┆ 星图测控    ┆ null ┆ … ┆ null       ┆ N     ┆ null       ┆ null       │\n",
       "│ 920118.BJ ┆ 920118 ┆ 太湖远大    ┆ null ┆ … ┆ null       ┆ N     ┆ null       ┆ null       │\n",
       "│ 920128.BJ ┆ 920128 ┆ 胜业电气    ┆ null ┆ … ┆ null       ┆ N     ┆ null       ┆ null       │\n",
       "│ 689009.SH ┆ 689009 ┆ 九号公司-WD ┆ 北京 ┆ … ┆ null       ┆ null  ┆ null       ┆ null       │\n",
       "└───────────┴────────┴─────────────┴──────┴───┴────────────┴───────┴────────────┴────────────┘"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "d2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "0f24d598-6a25-4559-996e-f5ac85240bfe",
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'd1' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
      "\u001b[31mNameError\u001b[39m                                 Traceback (most recent call last)",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[2]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m PerspectiveWidget(\u001b[43md1\u001b[49m)\n",
      "\u001b[31mNameError\u001b[39m: name 'd1' is not defined"
     ]
    }
   ],
   "source": [
    "PerspectiveWidget(d1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "82f370e5-ac0c-4148-8043-564ad45216f2",
   "metadata": {},
   "outputs": [],
   "source": [
    "d1=pl.read_parquet(\"new_share.parquet\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "8c084225-be88-48f9-9067-57981ac30bce",
   "metadata": {},
   "outputs": [],
   "source": [
    "d2=pl.read_parquet(\"stock_basic.parquet\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "c3d185ff-cf3f-4536-8a34-61891a3b1ed3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "df8549824a484a03bce3d7f6a87a6dcc",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "PerspectiveWidget(binding_mode='server', columns=['ts_code', 'sub_code', 'name', 'ipo_date', 'issue_date', 'am…"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "PerspectiveWidget(d1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "5ce2b5b4-3b6e-4908-a3a1-66659df6c031",
   "metadata": {},
   "outputs": [],
   "source": [
    "config ={\"version\":\"3.6.0\",\"plugin\":\"Datagrid\",\"plugin_config\":{\"columns\":{},\"edit_mode\":\"READ_ONLY\",\"scroll_lock\":False},\"columns_config\":{},\"settings\":True,\"theme\":\"Pro Light\",\"group_by\":[],\"split_by\":[],\"sort\":[],\"filter\":[],\"expressions\":{},\"columns\":[\"ts_code\",\"sub_code\",\"name\",\"ipo_date\",\"issue_date\",\"amount\",\"market_amount\",\"price\",\"pe\",\"limit_amount\",\"funds\",\"ballot\"],\"aggregates\":{}}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "dfd8306c-ba73-4ab5-8686-1d3efec09ab3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'version': '3.6.0', 'plugin': 'Datagrid', 'plugin_config': {'columns': {}, 'edit_mode': 'READ_ONLY', 'scroll_lock': False}, 'columns_config': {}, 'settings': True, 'theme': 'Pro Light', 'group_by': [], 'split_by': [], 'sort': [], 'filter': [], 'expressions': {}, 'columns': ['ts_code', 'sub_code', 'name', 'ipo_date', 'issue_date', 'amount', 'market_amount', 'price', 'pe', 'limit_amount', 'funds', 'ballot'], 'aggregates': {}}\n"
     ]
    }
   ],
   "source": [
    "print(config)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2b566b06-f16b-4b67-9a95-0a61079700f1",
   "metadata": {},
   "outputs": [],
   "source": [
    "from pathlib import Path\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "1999fbb3-fcc9-432b-ae61-6c5d411bbf97",
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'Path' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
      "\u001b[31mNameError\u001b[39m                                 Traceback (most recent call last)",
      "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[21]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43mPath\u001b[49m(\u001b[33m\"\u001b[39m\u001b[33m\"\u001b[39m)\n",
      "\u001b[31mNameError\u001b[39m: name 'Path' is not defined"
     ]
    }
   ],
   "source": [
    "Path(\"\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "f23e02e0-32f2-4d22-a40f-c70af4d7394c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "90702355c4404d28ab789541c38bd9a0",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "PerspectiveWidget(binding_mode='server', columns=['ts_code', 'symbol', 'name', 'area', 'industry', 'fullname',…"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "PerspectiveWidget(d2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "7f86a5ec-4f45-4ec4-a070-ed00ac7645cf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div><style>\n",
       ".dataframe > thead > tr,\n",
       ".dataframe > tbody > tr {\n",
       "  text-align: right;\n",
       "  white-space: pre-wrap;\n",
       "}\n",
       "</style>\n",
       "<small>shape: (2_000, 28)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>ts_code</th><th>sub_code</th><th>name</th><th>ipo_date</th><th>issue_date</th><th>amount</th><th>market_amount</th><th>price</th><th>pe</th><th>limit_amount</th><th>funds</th><th>ballot</th><th>symbol</th><th>name_right</th><th>area</th><th>industry</th><th>fullname</th><th>enname</th><th>cnspell</th><th>market</th><th>exchange</th><th>curr_type</th><th>list_status</th><th>list_date</th><th>delist_date</th><th>is_hs</th><th>act_name</th><th>act_ent_type</th></tr><tr><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>null</td><td>str</td><td>str</td><td>str</td></tr></thead><tbody><tr><td>&quot;603014.SH&quot;</td><td>&quot;732014&quot;</td><td>&quot;威高血净&quot;</td><td>&quot;20250508&quot;</td><td>null</td><td>4114.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>1.1</td><td>0.0</td><td>0.0</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td></tr><tr><td>&quot;301595.SZ&quot;</td><td>&quot;301595&quot;</td><td>&quot;太力科技&quot;</td><td>&quot;20250508&quot;</td><td>null</td><td>2707.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.65</td><td>0.0</td><td>0.0</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td></tr><tr><td>&quot;688755.SH&quot;</td><td>&quot;787755&quot;</td><td>&quot;汉邦科技&quot;</td><td>&quot;20250507&quot;</td><td>null</td><td>2200.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.5</td><td>0.0</td><td>0.0</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td></tr><tr><td>&quot;301636.SZ&quot;</td><td>&quot;301636&quot;</td><td>&quot;泽润新能&quot;</td><td>&quot;20250428&quot;</td><td>null</td><td>1597.0</td><td>455.0</td><td>33.06</td><td>17.57</td><td>0.45</td><td>5.279</td><td>0.0</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td></tr><tr><td>&quot;920068.BJ&quot;</td><td>&quot;920068&quot;</td><td>&quot;天工股份&quot;</td><td>&quot;20250428&quot;</td><td>null</td><td>6000.0</td><td>4200.0</td><td>3.94</td><td>14.98</td><td>255.0</td><td>2.364</td><td>0.0</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td><td>null</td></tr><tr><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td><td>&hellip;</td></tr><tr><td>&quot;300777.SZ&quot;</td><td>&quot;300777&quot;</td><td>&quot;中简科技&quot;</td><td>&quot;20190506&quot;</td><td>&quot;20190516&quot;</td><td>4001.0</td><td>3601.0</td><td>6.06</td><td>22.98</td><td>1.1</td><td>2.425</td><td>0.04</td><td>&quot;300777&quot;</td><td>&quot;中简科技&quot;</td><td>&quot;江苏&quot;</td><td>&quot;化纤&quot;</td><td>&quot;中简科技股份有限公司&quot;</td><td>&quot;Sinofibers Technology Co.,Ltd.&quot;</td><td>&quot;zjkj&quot;</td><td>&quot;创业板&quot;</td><td>&quot;SZSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;20190516&quot;</td><td>null</td><td>&quot;S&quot;</td><td>null</td><td>null</td></tr><tr><td>&quot;603267.SH&quot;</td><td>&quot;732267&quot;</td><td>&quot;鸿远电子&quot;</td><td>&quot;20190430&quot;</td><td>&quot;20190515&quot;</td><td>4134.0</td><td>3721.0</td><td>20.24</td><td>16.5</td><td>1.6</td><td>8.367</td><td>0.03</td><td>&quot;603267&quot;</td><td>&quot;鸿远电子&quot;</td><td>&quot;北京&quot;</td><td>&quot;元器件&quot;</td><td>&quot;北京元六鸿远电子科技股份有限公司&quot;</td><td>&quot;Beijing Yuanliu Hongyuan Elect…</td><td>&quot;hydz&quot;</td><td>&quot;主板&quot;</td><td>&quot;SSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;20190515&quot;</td><td>null</td><td>&quot;H&quot;</td><td>null</td><td>null</td></tr><tr><td>&quot;600989.SH&quot;</td><td>&quot;730989&quot;</td><td>&quot;宝丰能源&quot;</td><td>&quot;20190430&quot;</td><td>&quot;20190516&quot;</td><td>73336.0</td><td>66002.0</td><td>11.12</td><td>22.07</td><td>22.0</td><td>81.55</td><td>0.25</td><td>&quot;600989&quot;</td><td>&quot;宝丰能源&quot;</td><td>&quot;宁夏&quot;</td><td>&quot;化工原料&quot;</td><td>&quot;宁夏宝丰能源集团股份有限公司&quot;</td><td>&quot;Ningxia Baofeng Energy Group C…</td><td>&quot;bfny&quot;</td><td>&quot;主板&quot;</td><td>&quot;SSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;20190516&quot;</td><td>null</td><td>&quot;H&quot;</td><td>null</td><td>null</td></tr><tr><td>&quot;300778.SZ&quot;</td><td>&quot;300778&quot;</td><td>&quot;新城市&quot;</td><td>&quot;20190425&quot;</td><td>&quot;20190510&quot;</td><td>2000.0</td><td>2000.0</td><td>27.33</td><td>22.99</td><td>2.0</td><td>5.466</td><td>0.02</td><td>&quot;300778&quot;</td><td>&quot;新城市&quot;</td><td>&quot;深圳&quot;</td><td>&quot;建筑工程&quot;</td><td>&quot;深圳市新城市规划建筑设计股份有限公司&quot;</td><td>&quot;Shenzhen New Land Tool Plannin…</td><td>&quot;xcs&quot;</td><td>&quot;创业板&quot;</td><td>&quot;SZSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;20190510&quot;</td><td>null</td><td>&quot;N&quot;</td><td>null</td><td>null</td></tr><tr><td>&quot;002953.SZ&quot;</td><td>&quot;002953&quot;</td><td>&quot;日丰股份&quot;</td><td>&quot;20190424&quot;</td><td>&quot;20190509&quot;</td><td>4302.0</td><td>3872.0</td><td>10.52</td><td>16.34</td><td>1.7</td><td>4.526</td><td>0.03</td><td>&quot;002953&quot;</td><td>&quot;日丰股份&quot;</td><td>&quot;广东&quot;</td><td>&quot;电气设备&quot;</td><td>&quot;广东日丰电缆股份有限公司&quot;</td><td>&quot;Guangdong Rifeng Electric Cabl…</td><td>&quot;rfgf&quot;</td><td>&quot;主板&quot;</td><td>&quot;SZSE&quot;</td><td>&quot;CNY&quot;</td><td>&quot;L&quot;</td><td>&quot;20190509&quot;</td><td>null</td><td>&quot;N&quot;</td><td>&quot;冯就景&quot;</td><td>&quot;民营企业&quot;</td></tr></tbody></table></div>"
      ],
      "text/plain": [
       "shape: (2_000, 28)\n",
       "┌──────────┬──────────┬──────────┬──────────┬───┬──────────┬───────┬─────────┬─────────┐\n",
       "│ ts_code  ┆ sub_code ┆ name     ┆ ipo_date ┆ … ┆ delist_d ┆ is_hs ┆ act_nam ┆ act_ent │\n",
       "│ ---      ┆ ---      ┆ ---      ┆ ---      ┆   ┆ ate      ┆ ---   ┆ e       ┆ _type   │\n",
       "│ str      ┆ str      ┆ str      ┆ str      ┆   ┆ ---      ┆ str   ┆ ---     ┆ ---     │\n",
       "│          ┆          ┆          ┆          ┆   ┆ null     ┆       ┆ str     ┆ str     │\n",
       "╞══════════╪══════════╪══════════╪══════════╪═══╪══════════╪═══════╪═════════╪═════════╡\n",
       "│ 603014.S ┆ 732014   ┆ 威高血净 ┆ 20250508 ┆ … ┆ null     ┆ null  ┆ null    ┆ null    │\n",
       "│ H        ┆          ┆          ┆          ┆   ┆          ┆       ┆         ┆         │\n",
       "│ 301595.S ┆ 301595   ┆ 太力科技 ┆ 20250508 ┆ … ┆ null     ┆ null  ┆ null    ┆ null    │\n",
       "│ Z        ┆          ┆          ┆          ┆   ┆          ┆       ┆         ┆         │\n",
       "│ 688755.S ┆ 787755   ┆ 汉邦科技 ┆ 20250507 ┆ … ┆ null     ┆ null  ┆ null    ┆ null    │\n",
       "│ H        ┆          ┆          ┆          ┆   ┆          ┆       ┆         ┆         │\n",
       "│ 301636.S ┆ 301636   ┆ 泽润新能 ┆ 20250428 ┆ … ┆ null     ┆ null  ┆ null    ┆ null    │\n",
       "│ Z        ┆          ┆          ┆          ┆   ┆          ┆       ┆         ┆         │\n",
       "│ 920068.B ┆ 920068   ┆ 天工股份 ┆ 20250428 ┆ … ┆ null     ┆ null  ┆ null    ┆ null    │\n",
       "│ J        ┆          ┆          ┆          ┆   ┆          ┆       ┆         ┆         │\n",
       "│ …        ┆ …        ┆ …        ┆ …        ┆ … ┆ …        ┆ …     ┆ …       ┆ …       │\n",
       "│ 300777.S ┆ 300777   ┆ 中简科技 ┆ 20190506 ┆ … ┆ null     ┆ S     ┆ null    ┆ null    │\n",
       "│ Z        ┆          ┆          ┆          ┆   ┆          ┆       ┆         ┆         │\n",
       "│ 603267.S ┆ 732267   ┆ 鸿远电子 ┆ 20190430 ┆ … ┆ null     ┆ H     ┆ null    ┆ null    │\n",
       "│ H        ┆          ┆          ┆          ┆   ┆          ┆       ┆         ┆         │\n",
       "│ 600989.S ┆ 730989   ┆ 宝丰能源 ┆ 20190430 ┆ … ┆ null     ┆ H     ┆ null    ┆ null    │\n",
       "│ H        ┆          ┆          ┆          ┆   ┆          ┆       ┆         ┆         │\n",
       "│ 300778.S ┆ 300778   ┆ 新城市   ┆ 20190425 ┆ … ┆ null     ┆ N     ┆ null    ┆ null    │\n",
       "│ Z        ┆          ┆          ┆          ┆   ┆          ┆       ┆         ┆         │\n",
       "│ 002953.S ┆ 002953   ┆ 日丰股份 ┆ 20190424 ┆ … ┆ null     ┆ N     ┆ 冯就景  ┆ 民营企  │\n",
       "│ Z        ┆          ┆          ┆          ┆   ┆          ┆       ┆         ┆ 业      │\n",
       "└──────────┴──────────┴──────────┴──────────┴───┴──────────┴───────┴─────────┴─────────┘"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = d1.join(d2,on=\"ts_code\",how=\"left\")\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "2fc77eea-221e-4741-99ae-ca44f8b7d27b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9025d310c0484dcbb0851375f57aee52",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "PerspectiveWidget(binding_mode='server', columns=['ts_code', 'sub_code', 'name', 'ipo_date', 'issue_date', 'am…"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "PerspectiveWidget(df)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "7d15fdf4-b425-4a5d-9c43-f3e924cd90d8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "27345ffb992c4aa4a02ebda1e0145328",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "PerspectiveWidget(binding_mode='server', columns=['ts_code', 'sub_code', 'name', 'ipo_date', 'issue_date', 'am…"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "PerspectiveWidget(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "f1f21325-52a4-4771-8785-57ab2964aac0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b59e3204aee444ea8eb9c60c5f68a7f6",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "PerspectiveWidget(binding_mode='server', columns=['ts_code', 'sub_code', 'name', 'ipo_date', 'issue_date', 'am…"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "PerspectiveWidget(d1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2a7a7a60-6382-4bdc-8e21-bdf42db9a938",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "26c839d9-6141-48f6-87be-363c60b55523",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
